package everything.search.trees;

import everything.WorldMap;
import everything.search.trees.nodes.GameTreeNode;

public abstract class GameTreePruningSearch extends GameTreeSearch {

	public GameTreePruningSearch(WorldMap map, int id, int idOp) {
		super(map, id, idOp);
	}
	protected abstract GameTreeNode searchMax(GameTreeNode node, int ply, double alpha, double beta);
	protected abstract GameTreeNode searchMin(GameTreeNode node, int ply, double alpha, double beta);
	
	@Override
	protected GameTreeNode searchMax(GameTreeNode node, int ply) {
		return searchMax(node, ply, Integer.MIN_VALUE, Integer.MAX_VALUE);
	}

	@Override
	protected GameTreeNode searchMin(GameTreeNode node, int ply) {
		return searchMin(node, ply, Integer.MIN_VALUE, Integer.MAX_VALUE);
	}

}
